---
title: AutoLayoutFastTree 自动快速树形布局
icon: ListTree
relatedFile: app/src/core/service/controlService/autoLayoutEngine/autoLayoutFastTreeMode.tsx
---

用于对项目中的树形结构进行快速布局。它提供了一次性移动所有节点到合适位置的算法，主要适用于树形结构。

## 核心功能

### `autoLayoutFastTreeModeDown(rootNode: ConnectableEntity)`

实现向下树形布局。该方法会根据子节点的位置和间距，递归地调整所有节点的位置，使整个树形结构向下展开。

### `autoLayoutFastTreeModeRight(rootNode: ConnectableEntity)`

实现向右树形布局。该方法会先递归布局子节点，然后将当前节点放置在所有子节点的左侧，使整个树形结构向右展开。

## 辅助方法

### `getTreeBoundingRectangle(node: ConnectableEntity): Rectangle`

获取给定树形结构（以指定节点为根）的最小外接矩形。此方法假定树中没有循环。

### `moveTreeRectTo(treeRoot: ConnectableEntity, targetLocation: Vector)`

将一个子树（由其根节点指定）作为一个整体移动到目标位置。

### `alignColumnTrees(trees: ConnectableEntity[], gap = 10)`

将多个子树排列成一列，保持它们之间的垂直间距。

### `adjustRootNodeLocationByChildren(rootNode: ConnectableEntity, gap = 100)`

根据子节点的位置调整根节点的位置，使其位于子节点集合的左侧。

## 树形翻转

### `treeReverseX(selectedRootEntity: ConnectableEntity)`

将选定的树形结构沿 X 轴进行水平翻转。

### `treeReverseY(selectedRootEntity: ConnectableEntity)`

将选定的树形结构沿 Y 轴进行垂直翻转。
